Skip to content

test: Benchmark slowdown of element-wise list comparison#25

Open
Marius Merkle (MariusMerkleQC) wants to merge 5 commits intomainfrom
benchmark
Open

test: Benchmark slowdown of element-wise list comparison#25
Marius Merkle (MariusMerkleQC) wants to merge 5 commits intomainfrom
benchmark

Conversation

@MariusMerkleQC
Copy link
Copy Markdown
Collaborator

@MariusMerkleQC Marius Merkle (MariusMerkleQC) commented Mar 27, 2026

Motivation

See this comment.

Changes

Adds a benchmark test on (long) list columns (20 elements each). The column has an integer data type, so no tolerance-based comparison is necessary. We call _compare_sequence_columns as soon as there's a list/array anywhere in the data type tree, independent of the inner type, and this is ~5-6 times slower than using _eq_missing directly.

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 27, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (cccfad4) to head (ef9aa25).

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #25   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           10        10           
  Lines          758       758           
=========================================
  Hits           758       758           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a performance-focused test to quantify the slowdown of element-wise list comparison vs eq_missing() for list columns with non-tolerance inner types, supporting follow-up optimization work around _compare_sequence_columns.

Changes:

  • Import internal comparison utilities/constants needed to call condition_equal_columns() directly.
  • Add a new performance regression-style test comparing eq_missing() vs element-wise list comparison timing.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

)


def test_eq_missing_not_slower_than_field_wise_for_struct_columns() -> None:
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shall I remove it again?

@MariusMerkleQC Marius Merkle (MariusMerkleQC) changed the title test: Benchmark slowdown of element-wise list comparison test: Benchmark slowdown of element-wise list/array/struct comparison Mar 28, 2026
@MariusMerkleQC Marius Merkle (MariusMerkleQC) changed the title test: Benchmark slowdown of element-wise list/array/struct comparison test: Benchmark slowdown of element-wise list comparison Mar 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants